package org.sendvox.freswitch.core;

public enum Application {

	/**
	 * Provides the ability to bridge two endpoints. Generally used to route an
	 * incoming call to one or more endpoints. Multiple endpoints can be dialed
	 * simultaneously or sequentially using the comma and pipe delimiters,
	 * respectively. See below.
	 * <p>
	 * Usage:
	 * <code>bridge <target_endpoint>[,<target_endpoint>][|<target_endpoint>] </code>
	 * </p>
	 * <p>
	 * <code>bridge("{ignore_early_media=true}sofia/gateway/myGW/177808") </code>
	 * </p>
	 * <p>
	 * Reference: http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_bridge
	 * </p>
	 */

	BRIDGE("bridge"),

	/**
	 * Please refer to http://wiki.freeswitch.org/wiki/Mod_playback
	 */

	/**
	 * The optional argument `terminators` may contain a string with the
	 * characters that will terminate the playback.
	 * 
	 * >>> playback("/tmp/dump.gsm", terminators="#8")
	 * 
	 * In this case, the audio playback is automatically terminated by pressing
	 * either '#' or '8'.
	 * 
	 * For Inbound connection, uuid argument is mandatory.
	 */

	PLAYBACK("playback"),

	/**
	 * """Please refer to
	 * http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_say >>> say(en
	 * number pronounced 12345) For Inbound connection, uuid argument is
	 * mandatory.
	 */

	SAY("say"),

	/**
	 * http://wiki.freeswitch.org/wiki/Misc. _Dialplan_Tools_play_and_get_digits
	 */
	PLAY_AND_GET_DIGITS("play_and_get_digits"),

	/**
	 * The ivr application sends the caller to a predefined IVR
	 */
	IVR("ivr"),

	/**
	 * """Please refer to
	 * http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_sleep >>>
	 * sleep(5000) >>> sleep("5000") For Inbound connection, uuid argument is
	 * mandatory.
	 */

	SLEEP("sleep"),

	/**
	 * Answers an incoming call or session. For Inbound connection, uuid
	 * argument is mandatory.
	 * 
	 * <p>
	 * Usage: <code>answer</code>
	 * </p>
	 * <p>
	 * Reference: http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_answer
	 * </p>
	 */
	ANSWER("answer"),

	/**
	 * Hungup call. http://wiki.freeswitch.org/wiki/Hangup_Causes
	 */
	HUNGUP("hangup"),

	/**
	 * """Please refer to
	 * http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_set >>>
	 * set("ringback=${us-ring}")
	 * 
	 * For Inbound connection, uuid argument is mandatory.
	 */

	SET("set"),

	/**
	 * """Please refer to
	 * http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_set_global >>>
	 * set_global("global_var=value")
	 * 
	 * For Inbound connection, uuid argument is mandatory.
	 */

	SET_GLOBAL("set_global"),

	/**
	 * """Please refer to
	 * http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_unset >>>
	 * unset("ringback")
	 * 
	 * For Inbound connection, uuid argument is mandatory.
	 */

	UNSET("unset"),

	/**
	 * Please refer to
	 * http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_pre_answer Can only
	 * be used for outbound connection
	 */

	PRE_ANSWER("pre_answer"),

	/**
	 * Speaks a string or file of text to the channel using the defined speech
	 * engine. Please refer to http://wiki.freeswitch.org/wiki/TTS >>> "set"
	 * data="tts_engine=flite" >>> "set" data="tts_voice=kal" >>> speak(text)
	 * For Inbound connection, uuid argument is mandatory.
	 */
	SPEAK("speak");

	private String literal;

	private Application(String commandName) {
		this.literal = commandName;
	}

	public String getName() {
		return literal;
	}
}
